// 将10进制数转n进制字符串
/**
 * 将一个10进制数转换为一个n进制的数(字符串)
 * @param {*} n10 10进制的数
 * @param {*} type 转化为几进制
 * 返回一个字符串类型的n进制数
 */
function NumToNBase(n10, type) {
    // Using remainder to calculate base
    let n = n10;
    let res = '';
    while (n > 0) {
        let remain = n % type;
        res += remain;

        n = (n - remain) / type;
    }

    while (res[0] === '0') {
        res = res.substring(1);
    }

    // 这里只能返回字符串
    // JS里number就是10进制的，parseInt方法只能返回一个10进制数
    // BigInt能基于进制返回，下面会返回一个字符串和一个BigInt的数
    return {
        res,
        bigInt: BigInt(res, type),
    };
}

// console.log(NumToNBase(10, 16)); // {res: '10', bigInt: 10n}
// console.log(NumToNBase(10, 2)); // {res: '0101', bigInt: 101n}
// console.log(NumToNBase(100, 16)); // {res: '46', bigInt: 46n}
console.log(NumToNBase(30, 2)); // {res: '0101', bigInt: 101n}
